package com.nbcio.pm.mapper;

import com.nbcio.common.mybatis.core.mapper.BaseMapperPlus;
import com.nbcio.pm.domain.PmProject;
import com.nbcio.pm.domain.vo.PmProjectVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 项目管理Mapper接口
 *
 * @author nbacheng
 */
public interface PmProjectMapper extends BaseMapperPlus<PmProject, PmProjectVo> {

    /**
     * 查询项目列表
     *
     * @param project 项目
     * @return 项目集合
     */
    List<PmProjectVo> selectPmProjectList(PmProject project);

    /**
     * 查询项目详细信息
     *
     * @param projectId 项目ID
     * @return 项目详细信息
     */
    PmProjectVo selectPmProjectById(Long projectId);

    /**
     * 查询用户参与的项目列表
     *
     * @param userId 用户ID
     * @return 项目列表
     */
    List<PmProjectVo> selectUserProjects(@Param("userId") Long userId);

    /**
     * 查询项目统计信息
     *
     * @param projectId 项目ID
     * @return 统计信息
     */
    PmProjectVo selectProjectStats(@Param("projectId") Long projectId);

    /**
     * 更新项目进度
     *
     * @param projectId 项目ID
     * @param progress 进度
     * @return 更新结果
     */
    int updateProjectProgress(@Param("projectId") Long projectId, @Param("progress") java.math.BigDecimal progress);
}
